package br.com.prontuario.faces;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

import br.com.prontuario.bean.NotificacaoBean;
import br.com.prontuario.logica.contract.EmailLogicaContract;
import br.com.prontuario.logica.contract.NotificacaoLogicaContract;
import br.com.prontuario.util.FacesUtil;

// TODO - Refazer

@ManagedBean(name = "notificacaoFaces")
@ViewScoped
public class NotificacaoFaces extends FacesUtil {

	private static final long serialVersionUID = 1L;

	private List<NotificacaoBean> listaNotificacoes = new ArrayList<>();

	@ManagedProperty(value = "#{notificacaoLogica}")
	private NotificacaoLogicaContract notificacaoLogica;
	
	@ManagedProperty(value = "#{emailLogica}")
	private EmailLogicaContract logicaEmail;
	
	@PostConstruct
	public void init() {
		this.buscarNotificacoes();
	}

	public void buscarNotificacoes() {
		if (!listaNotificacoes.isEmpty()) {
			listaNotificacoes.clear();
		}
		listaNotificacoes.addAll(notificacaoLogica.buscarNotificacoesPendentes());
	}
	
	public void enviarEmail(NotificacaoBean notificacao) {
		
		Long idNotificacao = notificacao.getId();
		try {

		} catch (Exception e) {
			adicionarMensagem("Erro ao enviar o email");
		}
	}

	public List<NotificacaoBean> getListaNotificacoes() {
		return listaNotificacoes;
	}

	public void setListaNotificacoes(List<NotificacaoBean> listaNotificacoes) {
		this.listaNotificacoes = listaNotificacoes;
	}

	public void setNotificacaoLogica(NotificacaoLogicaContract notificacaoLogica) {
		this.notificacaoLogica = notificacaoLogica;
	}

	public void setLogicaEmail(EmailLogicaContract logicaEmail) {
		this.logicaEmail = logicaEmail;
	}
	
}